才开极客时间专栏的时候,就有读者留言让我发表一下对区块链技术的一些看法。只是当时觉得区块链方面的技术一方面比较简单,感觉也没什么好说的,另一方面,我觉得还有很多更主流更能帮助大家成长的技术,所以就把区块链相关的技术文章降级处理了。
那为什么现在我又要写这个主题呢?
2010 年,我在浏览国外技术网站时,看到好多人在讨论一个叫 bitcoin 的东西,还看到有人说用几万个这个东西换了个披萨。随后,我看了一下它的白皮书,这篇不到 10 页的文档读起来还是很容易的,所以建议你读一读。
然后,我在一台电脑上尝试安装了一下,就像用 BT 或电驴下载一样,连入了这个没有服务器的 P2P 网络,下载了账本,还尝试了一下 " 挖矿 "。
花了不短的时间,记下了我的比特币里的一个区块,收到了来自系统奖励的 50 个比特币。我默默地看着这个又耗硬盘空间,又非常吃 CPU 的家伙,心里想,这什么破软件,太难用了,就删除了。(是的,这 50 个比特币也就不知道去哪了。)
记得比特币开始有价值的时候,像维基解密这样的机构为了避开被政府控制的银行,会接受比特币的捐款。2012 年的时候,比特币已经看涨了,到了 2013 年,比特币的市值已经比较高了,突破了 1000 美金。
那个时候,中国有好多人在挖矿。记得最厉害的是李笑来,他的比特币持有数量很可观,如果没有卖的话,现在就更为 " 恐怖 " 了。
在 2016 年的时候,我听说了个叫以太坊的东西。嗯,是区块链 + 代码的东西,又被叫作智能合约,这的确给予了区块链有更多的想像空间。还听说了这个项目是被 ICO 出来的,然后我就了解了一下 ICO。同年,我有一个高中同学,搞了个创业项目,据说是中国第一个 ICO 项目。当时筹到了 1000 万人民币,然后发个币上了二级市场。
再然后,2017 年的一天有人带我去见薛蛮子。听他说他在很短的一段时间内出手投了好多个和区块链相关的创业项目。见薛蛮子一周后,中国政府出台政策定性 ICO 非法,开始治理市场,清除所有一切和 ICO 相关的东西。
似乎市场应该就此冷静下来了。
2018 年 1 月 9 日,真格基金创始人徐小平在一个微信群里对他投资公司的 CEO 们说,区块链是一场伟大的技术革命。他要求大家 " 对区块链不要有怀疑,不要有迟疑,立即动员全体员工,学习如何拥抱这场革命 "。
随着徐小平这个微信截图的流出又把区块链推到了风口浪尖。我几个关系不错的做技术的朋友也跟着入坑了……各种人,认识我的,不认识我的,全都来找我,问我区块链的事,我不想关注都不成了……
所以,我想我还是在这里写上几篇文章吧。一方面,我会很客观地把区块链的技术解释出来(不是那种天马行空完全不知所云的比喻,是实实在在的技术,我保证非技术人员都一定能看得懂), 包括区块链、非对称加密、挖矿、共识机制等。
另一方面,我会结合现有的一些金融上的交易撮合的中心化标准玩法来让你来比较一下中心化和去中心化的不同。最后,我会谈一些我的观点,可能会上升到哲学层面。当然,最后还是由你自己来做判断。
下面是这几篇文章要回答的关键问题。
闲言少叙,我们开始。
你一定看过太多的文章用各式各样的比喻来讲区块链技术是什么,以及为什么牛逼。在这里,我尝试用我的话来说明一下区块链技术的革命性。
说区块链必然要谈比特币,比特币是一种数字货币。但最令人叫绝的是,比特币号称有下面几个特性。
这几个东西加在一起,就可以让那些想作弊的人,尤其是那些有权有势有钱的大公司大组织很难作恶。因为 " 去中心化 " 这个事,从本质上来说,造就了整个系统不再需要这些个大的公司和组织,人民可以达到真正意义上的自治,这些个大公司都会倒闭。
简单说来,相信区块链的人都相信,可以通过区块链这个技术来改变整个社会的组织形成——不再需要银行、中介机构、电商平台、支付宝等中间机构,人们可以通过一个不受任何人控制和操作的 P2P 金融系统,进行完全自由和可信的交易。
当然,反区块链的人的观点也很明确。他们认为,所谓的去中心化看似很美好,但实则不可能。而且从目前的区块链的应用来看,也没有颠覆什么,连迹象都没有。反而,大家都在疯狂地炒作概念,没有实质的价值。像 ICO 和交易所这样的东西里面充满了大量的投机主义,泡沫非常大。
于是,这种巨大无比的争议性,把人们分割成了两种阵营,把区块链推向了火热。对此,我这几篇文章会把区块链这个技术一点一点讲解清楚,让你自己判断。
其实,对于投资机构来说,在逻辑上,我觉得他们应该感到恐慌才对,因为他们也是被革命的对象啊。如果某个事不再需要公司,人们自治,那么投资人怎么投资啊?投资的实体都没了啊,怎样有回报?
如果说,投资机构想扶植一个小公司用区块链技术把大公司干掉,那在逻辑上也说不通啊,因为如果你投资的公司也可能被别人很容易地颠覆掉,那么你怎么可能会投资呢?
相关的逻辑问题,我们会放在最后来讨论,还是先看一下区块链的技术。下面会有非常详细的技术细节,如果你不关心技术细节,那么可以只看 " 技术概要 " 一节。
首先,我们先看一下中心化和去中心化的业务流是什么样的。
下面的图给出了 " 传统中心化 " 和 " 去中心化 " 的对比。
中心化结构(大家都将记账权交给银行)
去中心化的交易
去中心化的比特币交易处理流程如下。
注意,整个比特币的世界是没有服务器的,其完全是靠大家用自己的电脑拼出来的一个分布式系统。既然这些电脑都是大家自己的,所以这种 P2P 的去中心化网络有一个前提假设——“网络中的任何结点都是不能信任的,它们中的任何一个都可能会作恶”。
基于这个前提假设,这个分布式的账本系统就需要有如下的设计:任何人都可以拿到所有的数据。所以,数据要能很容易被验证是合法的没有被修改过的,而且也要是很难被人修改的。
基于这个设计,比特币使用了两个比较大的技术:“区块链技术 "和" 工作量证明共识机制”。
第一个技术就是区块链,区块链又叫 blockchain,其中有一个一个的区块,每个区块中包括着一组交易信息,然后,每一个区块都会有一个 ID(或是一个地址),这些区块通过记录前一个区块的 ID 来形成一条链。下面的图有助于你形象地理解这一概念,感兴趣可以看看。
但需要注意下面这几个方面。
而真正让区块链做到非常难篡改的是工作量证明的共识机制。
我们知道,分布式网络的数据一致性是最难的问题了,在这种去中心化的网络集群下就更难了。其中最大的本质差别是,**一个公司内的分布式系统中的结点是被假设成可信任的,而在去中心化的网络下,结点要被假设成不可信任的。**想象一下,在一堆不可信的结点上做一致性是不是一件很难的事?
这里,需要解决几个与 " 数据一致性 " 相关的问题。
是的,这种没有人组织的玩法真是乱啊。
**为了解决这几个问题,比特币使用了 Proof-of-Work 工作量证明机制,也就是 " 挖矿 "。所谓的 " 挖矿 " 其实就是用大规模的计算来找到一个符合系统要求的区块 ID。**要找到符合条件的区块 ID 只能通过暴力穷举的方式,所以要付出大量的系统计算资源和电力。
这样一来,我们用这种 " 极度消耗计算力 " 的方式来提高成本,从而有效地遏制或解决下面几个问题。
你别看 Proof-of-Work 成本这么高,还这么耗电不环保,但是,这是目前去中心化系统中最安全的玩法。(其中的相关细节可以查看后面的 " 挖矿 " 和 " 去中心化的共识机制 "。)
好的,上面就是区块链的相关技术概要。如果想了解相关的技术细节,你可以继续看后面的内容。如果不感兴趣,可以选择跳过。